
//
//  YHPHomeTableViewController.swift
//  SinaSwift
//
//  Created by Yan on 16/3/5.
//  Copyright © 2016年 baidu. All rights reserved.
//

import UIKit
import SVProgressHUD
import AFNetworking



private let HomeCellID: String = "HomeCellID"

class YHPHomeTableViewController: YHPBasicTableViewController{

//    var user : YHPUser?
    lazy var statuses = [YHPStatus]()
    
    override func viewDidLoad() {
        
        super.viewDidLoad()
        
        //如果没有登录显示登录界面
        if !YHPUserAccount.shareAccount.userLogin {
            visitorLoginView.setUpInfoWith("传智播客,学iOS,月薪过万,迎娶白富美,出任CEO,走向人生巅峰.拯救地球.", imageName: nil)
            return
        }
              prepareForTableView()
    }
    
    private func prepareForTableView() {
        //注册cell
        // OC -> [UITableViewCell class]  swift -> UITableViewCell.self
        tableView.registerClass(YHPStatusCell.self, forCellReuseIdentifier: HomeCellID)
//        tableView.rowHeight = 300
        //自动计算行高
        //预估行高
        tableView.estimatedRowHeight = 300;
        //设置分隔符样式
        tableView.separatorStyle = .None
        //自动计算行高 必须对应的添加底部约束
        tableView.rowHeight = UITableViewAutomaticDimension
        //创建刷新
        refreshControl = UIRefreshControl()
        refreshControl?.addTarget(self, action: "loadData", forControlEvents: UIControlEvents.ValueChanged)
    }
    
    @objc private func loadData() {
        // 开始刷新
        refreshControl?.beginRefreshing()
        // YHPStatus类方法获取数据
        let since_id = self.statuses.first?.id ?? 0
        YHPStatus.loadData(since_id) { (array) in
            // 停止刷新
            self.refreshControl?.endRefreshing()
            //如果array存在并且将值给list 否则提示用户网路错误
            guard let list = array else {
                SVProgressHUD.showErrorWithStatus("网络错误,请检查网络")
                return
            }
            if since_id > 0  {
                // 下拉刷新
                self.statuses = list + self.statuses
            } else {
                // 首次刷新
                // 将获取到的数据存入数组
                self.statuses = list
            }
        
            // tableview刷新数据
            self.tableView.reloadData()
        }
           }
}

//MARK: 代理方法
extension YHPHomeTableViewController {
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return statuses.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
       let cell = tableView.dequeueReusableCellWithIdentifier(HomeCellID, forIndexPath: indexPath) as! YHPStatusCell
        let s = statuses[indexPath.row]
        cell.status = s
        print(s.id)
//        print(s.imageURLs?.count)
//        cell.textLabel?.text = statuses[indexPath.row].user?.name
        return cell
    }
}
